package lk.icta.common.service;

import lk.icta.common.dto.GeoPoint;
import lk.icta.common.entity.Document;
import lk.icta.common.entity.DocumentCategory;
import lk.icta.core.entity.ModuleType;
import lk.icta.user.entity.User;

import java.io.File;
import java.util.List;

/**
 * @author Mahesha Kalpanie
 */
public interface DocumentManagementService {

    public List<Document> getDocumentsByModuleAndModuleId(User user, ModuleType module, long moduleId);

    public Document getDocumentById(User user, long id);

    public String findFilePath(User user, long documentId);

    public void deleteDocumentById(User user, long id);

    public void uploadExistingfiles(User user, long id, long newId, ModuleType moduleType, ModuleType newModuleType);

    public void uploadfiles(User user, List<Document> docList, long id);

    public List<DocumentCategory> getDocumentCategoryList(User user);

    public List<DocumentCategory> getDocumentCategoryListByModuleId(User user, ModuleType moduleType);

    /*
    *Delete attached documents at DefineAM
    *@param deleteDocList  ; Ids of docs that need to be deleted
    *@param user ; User performing the task
    *
    */
    public void deleteDocumentAtLandAssociationDefineAM(List<Long> deleteDocList, User user);
}
